/*
 * BangoProfile.h
 *
 *  Created on: 27 Dec 2012
 *      Author: sonya
 */

#ifndef BANGOPROFILE_H_
#define BANGOPROFILE_H_


#include "BangoFieldNames.h"
#include "BangoStatic.h"
#include <QVariant>

using namespace std;

class BangoProfile
{

private:
	int _profileId;
	int _sdkType;
	QString _sdkVersion;
	QString _applicationId;
	QString _applicationType;
	QString _applicationChannel;
	QString _applicationVersion;
	QString _userId;
	int _connectionType;
	bool _isRoaming;
	int _sessionRestartTime;
	QString _operator;
	QString _operatorName;
	QString _operatorCountryIso;
	QString _simCardSerial;
	QString _device;
	QString _model;
	QString _hardwareId;
	QString _version;
	QString _pin;
	QString _operatorConnectionType;
	QString _simOperator;

	bool _profilePosted;
	QString _locationSource;
	double _locationAltitude;
	double _locationLatitude;
	double _locationLongitude;
	float _locationAccuracy;

public:
	BangoProfile();


	void ProfileID(int profileId){_profileId = profileId;}
	int ProfileID(){return _profileId;}
	void SDKType(int sdkType){_sdkType = sdkType;}
	int SDKType(){return _sdkType;}
	void SDKVersion(QString sdkVersion){_sdkVersion = sdkVersion;}
	QString SDKVersion(){return _sdkVersion;}
	void ApplicationID(QString applicationId){_applicationId = applicationId;}
	QString ApplicationID(){return _applicationId;}
	void ApplicationType(QString applicationType){_applicationType = applicationType;}
	QString ApplicationType(){return _applicationType;}
	void ApplicationChannel(QString applicationChannel){_applicationChannel = applicationChannel;}
	QString ApplicationChannel(){return _applicationChannel;}
	void ApplicationVersion(QString applicationVersion){_applicationVersion = applicationVersion;}
	QString ApplicationVersion(){return _applicationVersion;}
	void UserID(QString userId){_userId = userId;}
	QString UserID(){return _userId;}
	void ConnectionType(int connectionType){ _connectionType = connectionType;}
	int ConnectionType(){return _connectionType;}
	void IsRoaming(bool isRoaming){_isRoaming = isRoaming;}
	bool IsRoaming(){return _isRoaming;}
	void SessionRestartTime(int sessionRestartTime){_sessionRestartTime = sessionRestartTime;}
	int SessionRestartTime(){return _sessionRestartTime;}
	void Operator(QString operatorShortName){_operator = operatorShortName;}
	QString Operator(){return _operator;}
	void OperatorName(QString operatorName){_operatorName = operatorName;}
	QString OperatorName(){return _operatorName;}
	void OperatorCountryISO(QString operatorCountryIso){_operatorCountryIso = operatorCountryIso;}
	QString OperatorCountryISO(){return _operatorCountryIso;}
	void SimCardSerial(QString simCardSerial){_simCardSerial = simCardSerial;}
	QString SimCardSerial(){return _simCardSerial;}
	void Device(QString device){_device = device;}
	QString Device(){return _device;}
	void Model(QString model){_model = model;}
	QString Model(){return _model;}
	void HardwareId(QString hardwareId){_hardwareId = hardwareId;}
	QString HardwareId(){return _hardwareId;}
	void Version(QString version){_version = version;}
	QString Version(){return _version;}
	void Pin(QString pin){_pin = pin;}
	QString Pin(){return _pin;}
	void OperatorConnectionType(QString operatorConnectionType){_operatorConnectionType = operatorConnectionType;}
	QString OperatorConnectionType(){return _operatorConnectionType;}
	void SimOperator(QString simOperator){_simOperator = simOperator;}
	QString SimOperator(){return  _simOperator;}
	void ProfilePosted(bool profilePosted){_profilePosted = profilePosted;}
	bool ProfilePosted(){return _profilePosted;}
	void LocationSource(QString locationSource){_locationSource = locationSource;}
	QString LocationSource(){return _locationSource;}
	void LocationAltitude(double locationAltitude){_locationAltitude = locationAltitude;}
	double LocationAltitude(){return _locationAltitude;}
	void LocationLongitude(double locationLongitude){_locationLongitude = locationLongitude;}
	double LocationLongitude(){return _locationLongitude;}
	void LocationLatitude(double locationLatitude){_locationLatitude = locationLatitude;}
	double LocationLatitude(){return _locationLatitude;}
	void LocationAccuracy(float locationAccuracy){_locationAccuracy = locationAccuracy;}
	float LocationAccuracy(){return _locationAccuracy;}

	QVariantMap GetProfileDetails();

	void SetValues(int sdkType,
			 QString sdkVersion,
			 QString applicationId,
			 QString applicationType,
			 QString applicationChannel,
			 QString applicationVersion,
			 QString userId,
			 int sessionRestartTime,
			 int connectionType,
			 bool isRoaming,
			 QString locationSource,
			 double locationAltitude,
			 double locationLatitude,
			 double locationLongitude,
			 float locationAccuracy,
			 QString operatorShortName,
			 QString operatorName,
			 QString operatorCountryIso,
			 QString simOperator,
			 QString simCardSerial,
			 QString device,
			 QString model,
			 QString hardwareId,
			 QString version,
			 QString pin,
			 QString operatorConnectionType
			);

	void UpdateLocationValues(double locationAltitude,
							  double locationLatitude,
							  double locationLongitude,
							  float locationAccuracy
							  );



	BangoProfile(int sdkType,
			 QString sdkVersion,
			 QString applicationId,
			 QString applicationType,
			 QString applicationChannel,
			 QString applicationVersion,
			 QString userId,
			 int sessionRestartTime,
			 int connectionType,
			 bool isRoaming,
			 QString locationSource,
			 double locationAltitude,
			 double locationLatitude,
			 double locationLongitude,
			 float locationAccuracy,
			 QString operatorShortName,
			 QString operatorName,
			 QString operatorCountryIso,
			 QString simOperator,
			 QString simCardSerial,
			 QString device,
			 QString model,
			 QString hardwareId,
			 QString version,
			 QString pin,
			 QString operatorConnectionType
			);

	~BangoProfile();
};




#endif /* BANGOPROFILE_H_ */
